package cn.qingyun.gis.modules.scenes.mapper;

import cn.qingyun.gis.modules.scenes.entity.PoiScenario;
import cn.qingyun.gis.modules.scenes.entity.UniAddrRegion;
import com.baomidou.dynamic.datasource.annotation.DS;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * <p>
 * Mapper 接口
 * </p>
 *
 * @author guest
 * @since 2024-04-27
 */
@DS("scenes_offensive")
public interface UniAddrRegionMapper extends BaseMapper<UniAddrRegion> {
    /**
     * 点落网格
     *
     * @param poiScenario
     * @return
     */
    PoiScenario matchGridRegionDis(@Param("poiScenario") PoiScenario poiScenario);

    /**
     * 根据区县码取地市信息
     *
     * @param regionDisCode
     * @return
     */
    UniAddrRegion getRegionCity(@Param("regionDisCode") String regionDisCode);

    /**
     * 落微网格
     *
     * @param points
     * @return
     */
    UniAddrRegion matchMicroGrid(@Param("points") String points);

    /**
     * 落区县
     *
     * @param poiScenario
     * @return
     */
    PoiScenario matchRegionCity(@Param("poiScenario") PoiScenario poiScenario);

    /**
     * 查询变化的区划数据
     * @return
     */
    List<UniAddrRegion> selectCodeChanged(@Param("level") Integer level);

    /**
     * 查询区划信息，根据code
     * @return
     */
    UniAddrRegion selectGridDistrictCityInfo(@Param("code") String code);

    List<UniAddrRegion> selectProvinceByCode(@Param("i") int i);

    List<UniAddrRegion> selectUniAddrByCode(@Param("code") String code, @Param("flag") Integer flag);

    UniAddrRegion getRegionByCodeAndLevel(@Param("code") String currentCode, @Param("level") int currentLevel);
}
